Архитектура ОС

Слои абстракции. Архитектура ОС. Микроядро

Архитектура ОС

План лекции

1. Слои абстракции в ОС

2. Монолитная архитектура

3. Модульная архитектура

4. Микроядерная архитектура

5. Классификация ОС по назначению

6. Сетевые и распределённые ОС

7. Тенденции развития ОС

Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

1. Понятие архитектуры ОС

Архитектура ОС — структура организации основных компонентов ОС и их взаимодействия между собой.

Архитектура определяет:

  • Какие модули входят в состав ОС
  • Как модули расположены относительно друг друга
  • Как модули обмениваются данными

От архитектуры зависят производительность, надёжность, расширяемость и безопасность ОС.

Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

1. Слои абстракции в ОС

ОС используют слои абстракции для упрощения разработки, поддержки и развития.

Каждый слой:

  • Предоставляет набор сервисов вышележащему слою
  • Использует сервисы нижележащего слоя
  • Скрывает детали реализации нижележащих уровней
Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

Уровни абстракции (снизу вверх)

  • Аппаратный уровень — процессор, память, устройства ввода/вывода
  • Уровень ядра — управление памятью, процессами, обработка прерываний; самый привилегированный слой
  • Уровень системных вызовов — интерфейс взаимодействия приложений с ядром

  • Уровень системных библиотек — высокоуровневые функции поверх системных вызовов
  • Уровень пользовательских приложений — программы пользователя
Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

Назначение слоёв абстракции

  • Упрощение разработки — разработчик сосредоточен на своём уровне, не вникая в детали нижележащих
  • Модульность — каждый слой можно изменять или заменять независимо
  • Переносимость — при переносе на другую платформу меняются только нижние уровни
Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

Примеры абстракций в ОС

  • Виртуальная память — приложения используют больше памяти, чем физически доступно
  • Файловая система — абстракция файлов и каталогов скрывает детали устройства хранения
  • Сокеты — абстракция сетевого взаимодействия, скрывающая детали протоколов
  • Драйверы устройств — унифицированный интерфейс доступа к разному оборудованию
Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

2. Монолитная архитектура

Все компоненты ОС работают в привилегированном режиме и находятся в одном адресном пространстве:

  • Управление памятью
  • Файловая система
  • Сетевые протоколы
  • Драйверы устройств

Примеры: ранние версии UNIX, MS-DOS

Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

Монолитная архитектура: преимущества и недостатки

Преимущества:

  • Высокая производительность — прямой вызов функций
  • Простота разработки — все компоненты доступны непосредственно

Недостатки:

  • Сложность поддержки — изменение одного компонента может дестабилизировать систему
  • Низкая отказоустойчивость — ошибка в одном компоненте рушит всю систему
  • Сложность расширения — требует модификации существующего кода
  • Проблемы безопасности — любая уязвимость в ядре компрометирует систему
Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

3. Модульная архитектура

ОС разбивается на отдельные модули, которые загружаются и выгружаются динамически.

Примеры: современные версии Linux (loadable kernel modules), Windows NT

Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

Модульная архитектура: преимущества и недостатки

Преимущества:

  • Простота поддержки — изменение модуля не влияет на другие
  • Высокая отказоустойчивость — ошибка локализована
  • Простота расширения — достаточно добавить модуль
  • Гибкость — ОС адаптируется под конкретные нужды

Недостатки:

  • Снижение производительности — межмодульный обмен данными медленнее
  • Сложность разработки — требуется тщательное проектирование интерфейсов
Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

4. Концепция микроядра

Микроядро — минимальное ядро, предоставляющее только базовые сервисы:

  • Управление памятью
  • Управление процессами
  • Межпроцессное взаимодействие (IPC)

Остальные функции (файловая система, сеть, драйверы) выполняются в пользовательском пространстве в виде отдельных серверов.

Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

Принципы микроядра

  • Минимальность — ядро содержит только абсолютно необходимые функции
  • Модульность — функциональность реализуется отдельными серверами
  • Расширяемость — новые функции добавляются как новые серверы в пользовательском пространстве
Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

Микроядро: преимущества и недостатки

Преимущества:

  • Высокая надёжность — сбой сервера не рушит систему
  • Безопасность — серверы работают с ограниченными привилегиями
  • Гибкость — легко добавлять и удалять серверы
  • Переносимость — малый объём кода ядра

Недостатки:

  • Снижение производительности — IPC медленнее прямого вызова функций
  • Сложность разработки — тщательное проектирование интерфейсов между серверами
Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

Сравнение монолитного ядра и микроядра

Характеристика Монолитное ядро Микроядро
Размер ядра Большой Малый
Функциональность Все функции в ядре Основные в ядре, остальные — в пользовательском пространстве
Надёжность Ниже Выше
Безопасность Ниже Выше
Производительность Выше Ниже
Расширяемость Сложно Легко
Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

Примеры ОС с микроядром

  • QNX — коммерческая ОСРВ; используется в автомобильной промышленности и промышленной автоматизации; известна надёжностью и производительностью
  • MINIX — учебная ОС, разработанная Эндрю Таненбаумом; предназначена для изучения принципов построения ОС; вдохновила Линуса Торвальдса на создание Linux
Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

5. Классификация ОС по интерфейсу и режиму работы

По типу интерфейса:

  • CLI (MS-DOS, bash)
  • GUI (Windows, macOS, GNOME)

По режиму работы:

  • Однозадачные (MS-DOS)
  • Многозадачные: кооперативные и вытесняющие (Windows, Linux, macOS)
Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

Классификация ОС по пользователям и архитектуре

По типу пользователя:

  • Однопользовательские (MS-DOS, домашние Windows)
  • Многопользовательские (Linux, Unix, Windows Server)

По архитектуре ядра:

  • Монолитные (ранние UNIX)
  • Модульные (Linux, Windows NT)
  • Микроядерные (QNX, MINIX)
  • Гибридные (macOS, Windows)
Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

Обзор популярных ОС: Linux и macOS

Linux:

  • Ядро по лицензии GNU GPL
  • Множество дистрибутивов (Ubuntu, Fedora, Debian)
  • Стабильность, безопасность, гибкость
  • Серверы, встраиваемые системы, Android

macOS:

  • Разработана Apple для Macintosh
  • Ядро Darwin на базе BSD Unix
  • Удобный интерфейс и тесная интеграция с аппаратным обеспечением Apple
Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

Обзор популярных ОС: Windows и RTOS

Windows:

  • Доминирует на рынке настольных ПК
  • Широкая поддержка ПО и оборудования
  • Версии: Home, Pro, Server

ОС реального времени (RTOS):

  • Строгая временная детерминированность
  • Гарантированное время выполнения задач
  • Примеры: FreeRTOS, VxWorks, QNX
Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

Мобильные ОС

  • Android — разработана Google; ядро Linux; доминирует на рынке мобильных устройств
  • iOS — разработана Apple; ядро Darwin; используется на iPhone, iPad, iPod Touch
Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

6. Сетевые операционные системы

Сетевая ОС (NOS) предназначена для управления ресурсами сети и обеспечения сетевого взаимодействия.

Особенности:

  • Встроенная поддержка протоколов (TCP/IP, UDP)
  • Сетевые службы (DNS, DHCP, SMB/CIFS)
  • Механизмы безопасности (брандмауэры, VPN)
  • Общий доступ к файлам, принтерам и ресурсам

Примеры: Windows Server, Linux с сетевыми сервисами, Novell NetWare

Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

Сетевые vs распределённые ОС

Сетевая ОС:

  • Работает на каждом компьютере независимо
  • Пользователь видит отдельные компьютеры
  • Ресурсы настраиваются администратором явно

Распределённая ОС:

  • Единая ОС на нескольких компьютерах
  • Пользователь не видит распределения
  • Автоматическое распределение задач и ресурсов
  • Иллюзия единой вычислительной среды
Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

Принципы распределённых ОС

  • Прозрачность — скрытие деталей распределения: доступа, местоположения, миграции, параллелизма, отказоустойчивости
  • Масштабируемость — лёгкое добавление новых узлов без изменения архитектуры
  • Надёжность — устойчивость к отказам отдельных узлов; продолжение работы при сбоях
Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

7. Облачные вычисления и ОС

Облачные вычисления предоставляют ресурсы по требованию через Интернет.

Влияние на ОС:

  • Появление облачных ОС (Google Cloud OS)
  • Виртуализация и контейнеризация как основные технологии
  • Интеграция с облачными сервисами: хранение, аналитика, машинное обучение
Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

Виртуализация и контейнеризация

Виртуализация:

  • Несколько ОС на одном ПК
  • VMware, VirtualBox, Hyper-V
  • Консолидация серверов, тестирование

Контейнеризация:

  • Приложение + зависимости в контейнере
  • Docker, Kubernetes
  • Легковеснее виртуальных машин
Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

ОС для Интернета вещей (IoT)

IoT-устройства требуют специализированных ОС для маломощного оборудования.

Особенности:

  • Минимальный размер
  • Низкое энергопотребление
  • Поддержка беспроводных протоколов (Bluetooth, Wi-Fi, Zigbee)
  • Безопасность

Примеры: FreeRTOS, Zephyr, Mbed OS, Contiki

Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

Безопасность ОС

Безопасность — один из главных приоритетов разработки ОС.

Методы обеспечения:

  • Контроль доступа
  • Шифрование данных
  • Брандмауэры
  • Системы обнаружения вторжений
  • Регулярные обновления безопасности
Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

Заключение

  • Архитектура ОС определяет структуру и взаимодействие её компонентов
  • Слои абстракции обеспечивают модульность, переносимость и упрощение разработки
  • Монолитная архитектура — высокая производительность, но сложность поддержки
  • Модульная архитектура — гибкость и отказоустойчивость
  • Микроядро — надёжность и безопасность за счёт выноса сервисов в пользовательское пространство
  • Современные тенденции: облачные технологии, виртуализация, IoT, безопасность
Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

Ключевые выводы лекции

  • Слои абстракции упрощают разработку и повышают переносимость ОС

  • Монолитное ядро — производительно, но уязвимо

  • Модульная архитектура позволяет динамически загружать компоненты

  • Микроядро минимизирует код ядра, повышая надёжность

  • Классификация ОС проводится по множеству критериев

  • Распределённые ОС создают иллюзию единой вычислительной среды

  • Виртуализация и контейнеризация — ключевые технологии облачных ОС

  • Безопасность остаётся приоритетом развития ОС

Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

Вопросы для самоконтроля

  1. Какие уровни абстракции выделяют в операционной системе?
  2. В чём преимущества и недостатки монолитной архитектуры ОС?
  3. Чем модульная архитектура отличается от монолитной?
  4. Какие функции выполняет микроядро и какие выносятся в пользовательское пространство?
  5. В чём различие между сетевой и распределённой операционной системой?
  6. Какие принципы лежат в основе распределённых ОС?
  7. Как облачные вычисления и виртуализация влияют на развитие ОС?
  8. Какие требования предъявляются к ОС для IoT-устройств?
Слои абстракции. Архитектура ОС. Микроядро
Архитектура ОС

Рекомендуемые ресурсы

Основная литература:

  1. Таненбаум Э., Бос Х. Современные операционные системы. 4-е изд.
  2. Столлингс В. Операционные системы. 9-е изд.

Дополнительная литература:

  1. Таненбаум Э., Остен Х. Современные операционные системы. Подробное руководство.
  2. Олифер В.Г., Олифер Н.А. Сетевые операционные системы.
Слои абстракции. Архитектура ОС. Микроядро

Озвучиваем план лекции. Обратите внимание студентов на последовательность: от базовых понятий к конкретным архитектурам и современным тенденциям развития ОС.

Вводим ключевое определение архитектуры ОС. Подчеркнуть, что архитектура — это не просто набор компонентов, а способ их взаимодействия, напрямую влияющий на производительность, надёжность и безопасность.

Объясняем принцип многоуровневой организации. Каждый слой — это контракт: он предоставляет сервисы верхнему уровню и использует сервисы нижнего. Аналогия с этажами здания.

Перечисляем уровни снизу вверх. Важно подчеркнуть привилегированность уровня ядра — это фундамент безопасности системы. Ядро — единственный слой с прямым доступом к оборудованию.

Разбираем каждое преимущество на конкретном примере. Упрощение разработки: программисту не нужно знать, как работает жёсткий диск. Переносимость: при смене процессора меняется только нижний уровень.

Каждый пример иллюстрирует, как абстракция скрывает сложность. Можно спросить студентов: «Что произойдёт, если убрать абстракцию файловой системы?» — приложение будет работать напрямую с блоками на диске.

Исторически первая архитектура. Все компоненты работают в одном адресном пространстве — это и сила (скорость), и слабость (уязвимость) подхода. Примеры: ранние UNIX, MS-DOS.

Подчеркните компромисс: производительность versus надёжность. Приведите пример: ошибка в драйвере принтера может привести к «синему экрану смерти», потому что драйвер работает в пространстве ядра.

Эволюция монолитного подхода. Модули загружаются динамически — это как плагины, но в ядре. Пример: загрузка драйвера Wi-Fi без перекомпиляции ядра Linux.

Обратите внимание: модули работают всё ещё в пространстве ядра. Это компромисс между монолитной и микроядерной архитектурами — гибкость без потери производительности.

Ключевая идея — минимизировать код, работающий в привилегированном режиме. Ядро отвечает только за минимум: память, процессы, IPC. Всё остальное — серверы в пользовательском пространстве.

Три кита микроядра: минимальность, модульность, расширяемость. Ядро делегирует максимум функциональности серверам. Новые функции не требуют модификации ядра.

Главный компромисс — производительность. IPC-сообщения медленнее прямых вызовов функций. Спросите студентов: в каких сценариях это критично? Подсказка: высоконагруженные серверы, системы реального времени.

Сводная таблица — удобный способ систематизировать знания. Рекомендуйте студентам запомнить ключевые различия. Обратите внимание: чистые архитектуры встречаются редко, большинство ОС гибридные.

QNX — пример успешного промышленного применения микроядра. MINIX — учебная ОС Таненбаума. Можно упомянуть знаменитый спор Таненбаума и Торвальдса 1992 года о микроядре vs монолитном ядре.

Начинаем раздел классификации ОС. CLI и GUI — два подхода, каждый со своими преимуществами. Кооперативная vs вытесняющая многозадачность — важное различие для понимания надёжности системы.

Обратите внимание на гибридные ядра — macOS (XNU) и Windows NT сочетают подходы монолитного и микроядра. Чистые архитектуры в современных ОС практически не встречаются.

Linux — пример открытой модульной архитектуры с огромным сообществом. macOS — гибрид на базе BSD (Darwin/XNU). Обе системы следуют стандартам POSIX, что обеспечивает совместимость.

Windows доминирует на десктопах благодаря экосистеме ПО и обратной совместимости. RTOS — отдельный класс: главная цель — гарантированное время отклика, а не максимальная производительность.

Android и iOS — две доминирующие мобильные ОС. Обе базируются на Unix-подобных ядрах (Linux и Darwin), но с разной философией: открытость Android vs закрытая экосистема Apple.

Сетевая ОС — это не отдельный класс, а надстройка над базовой ОС. Любая современная ОС имеет сетевые возможности. Ключевой признак NOS — встроенные службы для управления сетевыми ресурсами.

Ключевое различие: в сетевой ОС пользователь видит границу между машинами, в распределённой — нет. Распределённая ОС создаёт иллюзию единого компьютера из множества узлов.

Прозрачность — главный принцип. Пользователь не должен знать, где физически выполняется его задача. Приведите пример: распределённая файловая система NFS — файлы выглядят как локальные.

Облака изменили роль ОС: от управления железом к управлению виртуальными ресурсами. Виртуализация стала ключевой технологией — одна физическая машина обслуживает десятки виртуальных.

Сравните подходы: виртуальная машина включает собственную ОС (тяжело), контейнер разделяет ядро хоста (легко). Docker и Kubernetes — стандарты индустрии для развёртывания приложений.

IoT-устройства ограничены в ресурсах — им нужны специализированные ОС. Спросите студентов: какие IoT-устройства они используют ежедневно? Умные часы, роутеры, бытовая техника — всё это работает под управлением ОС.

Безопасность — не отдельная функция, а сквозная характеристика ОС. Каждая архитектура имеет свои уязвимости: монолитное ядро — больший код в привилегированном режиме, микроядро — больше IPC-каналов для атаки.

Подводим итоги лекции. Подчеркните: нет идеальной архитектуры — есть компромиссы для конкретных задач. Выбор архитектуры определяется требованиями к производительности, надёжности и масштабируемости.

Резюмируем главные тезисы. Студенты должны понимать эволюцию: монолит → модули → микроядро → гибридные подходы. Каждая ступень решала проблемы предыдущей.

Рекомендуйте студентам ответить на вопросы самостоятельно после лекции. Хороший способ проверить глубину понимания. Вопросы 4 и 5 — ключевые, их стоит разобрать подробнее.

Таненбаум — основной учебник, обязательно к прочтению. Столлингс — хорошее дополнение с другим подходом к изложению материала. Главы об архитектурах ядер — к домашней проработке.